Method Overloading এবং Overriding Example: মেথড ওভারলোডিং এবং ওভাররাইডিং উদাহরণ

Java OOPs (Object-Oriented Programming) Examples - জাভা উদাহরন (Java  Examples) - Java Technologies

470

Method Overloading এবং Method Overriding হল দুইটি গুরুত্বপূর্ণ কনসেপ্ট যা Polymorphism এর অধীনে কাজ করে।

  • Method Overloading: এটি একই ক্লাসে একাধিক মেথডের ঘোষণা করা হয় যার সিগনেচার (method signature) আলাদা হয়, যেমন মেথডের নাম একই থাকে কিন্তু প্যারামিটার (parameter) ভিন্ন হয়।
  • Method Overriding: এটি কেবল inheritance প্রক্রিয়ায় ঘটে। এটি superclass এর মেথডকে subclass তে পুনঃসংজ্ঞায়িত (redefine) করতে ব্যবহৃত হয়। এখানে মেথডের নাম, রিটার্ন টাইপ এবং প্যারামিটার অবশ্যই সমান থাকতে হবে।

1. Method Overloading (মেথড ওভারলোডিং)

Method Overloading হল একই মেথড নামের জন্য ভিন্ন ভিন্ন প্যারামিটার ব্যবহার করা। এটি রানটাইমের আগে কম্পাইল টাইমে ঘটে।

উদাহরণ: Method Overloading

class Calculator {

    // মেথড ওভারলোডিং - দুটি পূর্ণসংখ্যার যোগফল
    public int add(int a, int b) {
        return a + b;
    }

    // মেথড ওভারলোডিং - তিনটি পূর্ণসংখ্যার যোগফল
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // মেথড ওভারলোডিং - দুটি দশমিক মানের যোগফল
    public double add(double a, double b) {
        return a + b;
    }
}

public class MethodOverloadingExample {
    public static void main(String[] args) {
        Calculator calc = new Calculator();

        // মেথড ওভারলোডিং কল
        System.out.println("Sum of 2 numbers: " + calc.add(10, 20)); // প্যারামিটার (int, int)
        System.out.println("Sum of 3 numbers: " + calc.add(10, 20, 30)); // প্যারামিটার (int, int, int)
        System.out.println("Sum of 2 decimal numbers: " + calc.add(10.5, 20.5)); // প্যারামিটার (double, double)
    }
}

আউটপুট:

Sum of 2 numbers: 30
Sum of 3 numbers: 60
Sum of 2 decimal numbers: 31.0

ব্যাখ্যা:

  • এখানে add নামক একাধিক মেথড রয়েছে, কিন্তু তাদের প্যারামিটার ভিন্ন।
  • প্যারামিটার অনুসারে সঠিক মেথডটি কল হবে।

2. Method Overriding (মেথড ওভাররাইডিং)

Method Overriding হল inheritance এর মধ্যে যেখানে subclass (পর্ণপ্রাপ্ত ক্লাস) তার superclass এর মেথডের আচরণ পরিবর্তন করে (redefine)।

উদাহরণ: Method Overriding

class Animal {
    // Superclass মেথড
    public void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    // Method Overriding: Subclass মেথড
    @Override
    public void sound() {
        System.out.println("Dog barks");
    }
}

public class MethodOverridingExample {
    public static void main(String[] args) {
        Animal animal = new Animal();
        animal.sound();  // Animal এর মেথড কল হবে

        Dog dog = new Dog();
        dog.sound();  // Dog এর মেথড কল হবে
    }
}

আউটপুট:

Animal makes a sound
Dog barks

ব্যাখ্যা:

  • Animal ক্লাসে একটি sound() মেথড রয়েছে, যা Dog ক্লাসে override করা হয়েছে।
  • @Override অ্যানোটেশনটি ব্যবহার করা হয়েছে যা নিশ্চিত করে যে মেথডটি সঠিকভাবে override করা হচ্ছে।
  • animal.sound();Animal ক্লাসের sound() মেথড কল হচ্ছে, এবং dog.sound();Dog ক্লাসের sound() মেথড কল হচ্ছে।

3. Method Overloading এবং Overriding এর পার্থক্য

বিষয়Method OverloadingMethod Overriding
অবস্থানএকই ক্লাসে (Same Class)superclass এবং subclass এর মধ্যে (Superclass and Subclass)
মেথড সিগনেচারপ্যারামিটার ভিন্ন হতে হবে (parameters must be different)প্যারামিটার এবং রিটার্ন টাইপ একই থাকতে হবে (must have same parameters and return type)
কখন ঘটেকম্পাইল টাইমে (Compile-time polymorphism)রানটাইম টাইমে (Runtime polymorphism)
কিভাবে কাজ করেএকই নামের একাধিক মেথড, কিন্তু প্যারামিটার ভিন্ন (Same method name but different parameters)superclass এর মেথডকে subclass এ override (Redefine the superclass method in subclass)
  • Method Overloading কম্পাইল টাইম polymorphism হিসাবে কাজ করে, যেখানে মেথডের নাম একই থাকে কিন্তু প্যারামিটার ভিন্ন হয়।
  • Method Overriding রানটাইম polymorphism হিসাবে কাজ করে, যেখানে subclass superclass এর মেথডের আচরণ পরিবর্তন করে।

এই কনসেপ্টগুলি Java প্রোগ্রামিং এর গুরুত্বপূর্ণ অংশ এবং এগুলি ব্যবহার করে আরও শক্তিশালী এবং নমনীয় কোড লিখতে সাহায্য পাওয়া যায়।

Content added By
Promotion

Are you sure to start over?

Loading...